from pydantic import BaseModel
from typing import List, Optional


class UploadResult(BaseModel):
    """文档上传结果模型"""
    success: List[str]  # 成功处理的文件名列表
    failed: List[str]   # 失败的文件名（含错误原因）


class DocumentMetadata(BaseModel):
    """文档元数据模型"""
    doc_id: str         # 文档唯一标识
    file_name: str       # 原始文件名
    upload_time: str    # 上传时间（ISO格式）
    chunk_count: Optional[int] = None  # 切片数量（处理后生成）
    status: str         # 状态：pending/processed/failed


class DeleteResult(BaseModel):
    """文档删除结果模型"""
    status: str         # 状态：success/failed
    message: Optional[str] = None  # 附加信息
